package com.broad.commerce.code.models;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotEmpty;
import java.util.List;

/**
 * @author stephen
 * @version V1.0
 * @date 2022-02-18 15:36
 * @description: EntityModuleDTO
 **/
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Builder
@Accessors(chain = true)
@SuppressWarnings("AlibabaLowerCamelCaseVariableNaming")
public class EntityModuleDTO {
	@NotEmpty(message = "实体项目名不能为空")
	private String jdbcProject;//项目名
	@NotEmpty(message = "业务项目名不能为空")
	private String businessProject;//项目名
	@NotEmpty(message = "实体包名不能为空")
	private String packageName;
	@NotEmpty(message = "实体服务包名不能为空")
	private String servicePackage;
	@NotEmpty(message = "实体类名不能为空")
	private String className;
	@NotEmpty(message = "实体表名不能为空")
	private String tableName;//表名
	@NotEmpty(message = "实体映射路径不能为空")
	private String mapping;//映射路径
	private String author;
	private String comment;
	private Boolean update;//是否更新文件内容
	private String xmlParent;
	private List<EntityFieldDTO> datas;//表字段集合
	/*
	 * 实体相关服务的包名
	 */
	//	@NotEmpty(message = "实体Model DTO包名不能为空")
	//	private String modelPackage;
	//	@NotEmpty(message = "实体Jpa包名不能为空")
	//	private String jpaPackage;
	//	private String fastMybatisPackage;
	//	@NotEmpty(message = "实体Mybatis包名不能为空")
	//	private String mybatisPackage;
	//	@NotEmpty(message = "实体接口包名不能为空")
	//	private String interfacePackage;

	//	@NotEmpty(message = "实体视图控制包名不能为空")
	//	private String controllerPackage;
}
